/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package session;

import common.JeuPFC;
import javax.ejb.Stateful;
import javax.persistence.EntityManager;
import persistence.Joueur;

/**
 *
 * @author user
 */
@Stateful
public class PartieSession implements PartieSessionLocal {

    // Add business logic below. (Right-click in editor and choose
    // "Insert Code > Add Business Method")
        @javax.persistence.PersistenceContext(unitName="persistenceUnit")
    private EntityManager em ;
    // Score du joueur au cours de la manche 
    private int scoreMancheJ;
    // Score de l'ordinateur au cours de la manche 
    private int scoreMancheO;
    // Le numero de la manche
    private int numManche;


    // Le joueur
    private Joueur joueur;

    public PartieSession() {
        scoreMancheJ=0;
        scoreMancheO=0;
        joueur=null;
        numManche=0;
    }

    public PartieSession(Joueur j){
        scoreMancheJ=0;
        scoreMancheO=0;
        joueur=j;
    }

    public int getScoreMancheJ() {
        return scoreMancheJ;
    }

    public void setScoreMancheJ(int scoreMancheJ) {
        this.scoreMancheJ = scoreMancheJ;
    }

    public int getScoreMancheO() {
        return scoreMancheO;
    }

    public void setScoreMancheO(int scoreMancheO) {
        this.scoreMancheO = scoreMancheO;
    }
     
    public int getNumManche() {
        return numManche;
    }
    
    public void setJoueur(Joueur j){
        this.joueur =j;
    }

    public int manche(int choix){
        numManche++;
        int resultat = JeuPFC.jouer(choix);
        if(resultat==-1){
            scoreMancheO++;
        }
        else if(resultat==1){
            scoreMancheJ++;
        }
        return resultat;
    }
    public void finPartie(){
        if(scoreMancheJ==3){
            joueur.ajouterPartieGagnee();
        }
        joueur.ajouterPartie();
        em.persist(joueur);
    }
    public boolean estFini(){
        boolean flag = ((scoreMancheJ==3)||(scoreMancheO==3));
        if(flag){
            finPartie();
        }
       return flag;
    }
}
